package io.github.yotta.logger.anno.annotation;

import io.github.yotta.logger.anno.annotation.provider.BizIdFrom;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author yotta
 * @date 2023/3/21 9:14
 * 定义当前操作
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface LogOperation {

    /**
     * @return 返回当前操作名字
     */
    String value() default "";

    /**
     * 返回日志模块
     *
     * @return
     */
    String model() default "";

    boolean logError() default true;

    /**
     * 业务id路径
     *
     * @return
     */
    String bizIdPath() default "";

    /**
     * 业务id来源
     *
     * @return 参数还是返回值
     */
    BizIdFrom bizIdFrom() default BizIdFrom.PARAM;


    /**
     * 是否记录参数和返回值
     *
     * @return
     */
    boolean logParam() default true;

}
